    
PasteColor Standard
Version 1.0b6
BY
Guy Zaslavsky

	¥ Release Notes
PasteColor is SHAREWARE. This means that you can try it out 
and pass a copy on to your friends (be sure to give them the 
complete package, including this document) freely, but if you want 
to use it regularly you must register by sending $20 ($30 for 
printed technical manual, and disk with latest version and utilities, 
sent to you via air mail) to me, at the address below. This package 
may be distributed freely electronically as well as via user groups 
and shareware software collections. Commercial distribution is 
prohibited without my written consent. PasteColor is ©Guy 
Zaslavsky, and you may not modify, decopmile, reverse engineer or 
otherwise reduce it to human perceivable form.
As a gesture of good will, and because I believe that the 
shareware software distribution system can actually work well for 
both small developers and end-users (due to the absence of costly, 
multistage mediation and a try-before-you-buy convenience), I 
have decided to offer a $15 discount on the personal edition of my 
robust, soon-to-be-released, non-shareware Enhanced version, to 
all registered users of this version. This should not in any way 
constitute a consideration for registering this version. Again, this is 
a gesture, and not part of what youÕre paying for. For more details 
about PasteColor Enhanced see section ÒLimitations and Future 
EnhancementsÓ.
send your name, address, e-mail address, comments, suggestions, 
and $20 ($30 for printed technical manual and disk with latest 
version and utilities    , sent to you via air mail) to:
Guy Zaslavsky
7 Rozen Street
Haifa, Israel 34784
You can send me e-mail to the following InterNet address:
s3450158@techst02.technion.ac.il

	¥ What It Does
PasteColor is an external command for HyperCard (XCMD), 
which allows you to add color (up to 32-bits per pixel!) to 
HyperCard stacks with copy and paste simplicity. Unlike practically 
every other product in the market that adds color to some aspect of 
HyperCard or another (Color text packages, pictures in external 
windows, etc.), PasteColor requires absolutely no scripting 
knowledge. You can paste any color picture into your stack, 
transparently, with no early preparation (except installing the 
needed resources from the installer that's built into the PasteColor 
stack). Once you choose "Paste Picture" from the Edit menu, your 
color picture will appear on screen.
Manipulating color pictures pasted using PasteColor is much 
more convenient (in my opinion) then managing black and white 
pictures using HyperCard's built-in B/W graphics support. Each 
pasted in picture is treated as an independent object, in such a way 
that it can be moved around, cut, copied, or duplicated. Although 
you canÕt edit the color pictures inside HyperCard, as you can with 
the standard B/W graphics, you are likely to find it most 
comfortable using a dedicated graphics program to produce quality 
graphics, and then paste the picture into your stack.

	¥ Using PasteColor
Note:  Before using any stack that contains PasteColor, make 
sure that HyperCardÕs memory partition is set to at least 2Mb (4Mb 
if possible). You can change the memory partition in the Get Info 
window of the HyperCard application. You will not be warned if the 
memory is set to less, but you can expect a system error or color 
pictures appearing and disappearing erratically, if you try pasting 
large pictures (16/24-bit perhaps?), or work with large card 
window sizes.
A pasted picture will be interactive initially. You can move, cut, 
copy, and duplicate an interactive picture. You do that by choosing 
an option from the pop-up menu that appears when you option-
click an interactive picture. Moving a picture is the same as moving 
an icon in the Finder. Copy will place a copy of the picture on the 
clipboard, and Cut will further remove the original. Duplicate will 
create a copy of the picture slightly lower and to the right of the 
original.
A forth option in the pop-up menu is perhaps the most useful 
one -- "Burn in...". By "Burning in" the picture you eliminate the 
possibility of moving or invoking the pop-up menu, permanently. 
This allows you to carefully position your picture on the card and 
then make it stay there without interacting with the user. Unless 
the option key is pressed while you release the mouse over the 
selection, you will be asked to confirm your intention to burn in the 
selected picture. This is due to the permanence of the burn in 
function in the standard version of PasteColor.
PasteColor works intensively behind the scenes for every 
operation involving its objects. As a result you may notice slight 
delays on some operations when operating on slower Macs such as 
the II, IIx, IIcx, IIsi, LC, LCII, and Color Classic. You can know when 
that delay has ended when the browse tool cursor turns into a plain 
arrow, and then back. Also, if you try pasting large color pictures, 
there will be a long delay, and if you are short on disk space, 
possibly a system error. If you are experiencing tedious delays for 
simple operations (most likely on large stacks with many color 
pictures), try increasing the disk cache (in the Memory control 
panel) and HyperCardÕs memory partition. You can also try working 
on a copy of the stack thatÕs on a RAM disk (also in the Memory 
control panel), but remember to copy the stack back to your hard 
disk when youÕre done so that it doesÕnt disappear when you shut 
the Mac down.

	¥ Limitations and Future Enhancements
PasteColor Standard does not include background support nor 
can it include color data with cards that are cut or copied (It can, 
however, correctly delete color data when deleting a card). If you 
wish to create a consistent color background in many cards in your 
stack, you must paste the color picture into each card individually. 
This causes both greater disk space (the size of the picture 
multiplied by the number of cards) and effort (repositioning each 
picture and burning it in individually). PasteColor Enhanced 
checks to see if you are in background mode and then decides 
whether to paste the picture normally or as one background picture 
that is shared by all cards of the current background, and doesÕnt 
have to be updated regularly. This method provides for 
considerably faster operation, as well as greater reliability. It also 
correctly moves color data along with cards being cut or copied.
PasteColor Standard is not able to undo any action whatsoever. 
E.g., if you accidentally move a picture, clear a picture, or even 
worse - burn it in, by mistake, choosing undo from the menu will 
do nothing. PasteColor Enhanced can undo any action (including 
all the ones not existing in the standard version), as well as 
providing an option in every pop-up menu to de-burn all pictures 
in current card/background.
PasteColor Enhanced offers these additional options in the pop-
up menu: scale, clip, edit (opens the picture in a selected 
application) compress, re-initialize card/background, buttonize 
(convert into a clickable button), and export. It may offer color 
filling capabilities, so that you could, for example, create a smooth, 
color background which will consume a slight fraction of the disk 
space a picture of that size would consume..
Duplicating in PasteColor Standard is not quite perfect. When 
duplicating, the current contents of the clipboard are destroyed. 
Also, instead of pointing to the original picture, PasteColor 
Standard creates an independent copy, which takes more space. 
PasteColor Enhanced can point as many pictures in a card as you 
want to the same resource, thus enabling you to create a repeating 
pattern using less disk space. It also works around the clipboard 
destruction problem.
Currently, the PasteColor Standard Package is contrived of 
several XCMDs/XFCNs (see credits) and a few handlers that go into 
the stackÕs script (an empty stack that includes a full installation of 
PasteColor Standard, consumes about 100K of disk space). 
PasteColor Enhanced is constructed of less, more integrated (thus 
faster) XCMDs, consumes about one third disk space, and works 
around many handlers so that your stack is more compatible, and 
color support is more transparent to HyperCard developers. 
PasteColor Enhanced is also ÒusableÓ -- you can use PasteColor 
from any stack, by writing one line in itÕs ÒopenStackÓ handler (start 
using stack ÒPasteColor EnhancedÓ), without actually installing PasteColor 
into that stack. This method provides for less disk space 
requirement, easier (collective) update of the PasteColor package, 
and your stacks stay practically the same (as far as HyperTalk 
concerns).
Unlike many other programs (including HyperCardÕs built-in 
ÔpictureÕ command) that read from external files, each pasted-in 
picture is contained in the stack file itself. If you paste many 
pictures into many cards, your stack could get quite big. PasteColor 
Enhanced offers both QuickTime support and internal JPEG 
compression to reduce the disk space required by up to 96% (the 
QuickTime support may include pasting in movies that play when 
double-clicked, I havenÕt decided yet weather or not to include that 
in the first release of PasteColor Enhanced).
When HyperCard hilites a button as a response to either a direct 
command or the very common button property ÒAuto-HiliteÓ, it 
actually turns every pixel in the button's area from black to white 
or vice versa. Therefore, since HyperCard is not directly aware of 
the presence of color, nor does it know how to handle color 
information, PasteColor will not be able to correctly display color 
inside a hilited button (the whole button area will appear as an 
inversion of the button itself and any other HyperCard objects or 
B/W graphics in HyperCard's graphic layer, with some color visible 
through the Òwhite holesÓ of the button). PasteColor Enhanced 
includes a color aware inversion option (similar to the flash 
command, only limited to the buttonÕs area), which can constitute a 
substitution for the built-in hiliting. I am considering adding an 
option of flipping the color data bounded by the button both 
vertically and horizontally, so that you can create a convincing 3-D 
effect in which the button, upon being clicked on seems to be 
pushed in. 
               
Tell me about anything you miss or desperately need, so that I 
can try and include it in an early Enhanced version (1.x).
Overall, PasteColor Enhanced offers better performance and 
much enhanced functionality. Please register this version so that I 
can send you a $15 discount offer A.S.A.P..


	¥ Bugs & Incompatibilities
PasteColor Standard does not have any as far as I know. Please 
inform me, if you unfortunately find any. If you are a plain, non-
scripting HyperCard user, the use of PasteColor Standard should 
be absolutely transparent to you. However, if you are a serious 
scripter, or you want to install color support into existing stacks, 
you should consult the technical manual that I sent you along with 
your registered copy. The technical manual also includes 
information about locked stacks, low userLevels, transitions, 
animations, needed messages, and much more to help you get the 
maximum out of your new color-capable HyperCard!
I hope that you appreciate the effort I made to not use even one 
global variable, in order to do a ÒcleanÓ job, minimize callbacks to 
HyperCard, and obliterate any chance of a user getting into my 
variables and causing ugly errors. If you run into incompatibilities 
with certain scripts/externals and you send me specs of your work 
around to overcome them, I'll do my best to integrate them into an 
early version of the enhanced (or even standard) version. 
Registered users of PasteColor are entitled to free, unlimited 
number of upgrades to minor updates (these include mainly bug & 
incompatibility fixes and performance tuning), either by e-mail or 
by sending me a diskette and a self addressed envelope with $2 
worth of stamps inside. Interested developers, having an e-mail 
account in either AppleLink or InterNet, can subscribe to my 
PasteColor newsletter, which includes news, hints & tips, and 
general information on PasteColor and on various other 
HyperCard/AppleScript subjects, for only $15 per year.

	¥ Credits
PasteColor is an independent XCMD. However, in order to boost 
performance, I replaced several of my own routines with other 
peopleÕs externals which do a specific task better (in some way or 
another) than my own. Most of them are eliminated in the 
enhanced version, where IÕve refined my own routines to a point 
where the overall speed is at least as fast as now, while integrated 
into a one, smaller, more versatile, more reliable XCMD.
I thank Frederic Rinaldi for his free, premium quality externals. 
I compared many of them to similar commercial externals and they 
usually turned out to be faster, more reliable, and generally offered 
more control over operation. I highly recommend them to 
everyone. Frederic Rinaldi can be reached at:
CompuServe:	71170,2111	AppleLink:  RINALDI1
InterNet:	RINALDI1@APPLELINK@APPLE.COM

I also thank BangDabba Productions for ÒColorizingHCÓ - the 
poorly implemented alternative to simply dumping a picture on 
screen (It gave me the incentive to write PasteColor), to Heizer 
Software for a great program (although difficult to master) -- 
CompileIt!   , and finally, I wish to thank Shai Samuel, of Apple 
Center Haifa, for helpful pieces of advice and support.
